wsl with ss 坑和解决方案
April 27, 2020
最近在使用 yarn 安装 node-sass cypress 时下载额外脚本有连接超时的问题, 遂翻墙
环境:
家用: win10 wsl2 ssr 端口 1080
公司: win10 wsl ssr 端口 1080
proxychains4
proxychains4 是支持 socks5 proxy 的联级代理, 但是只能做一层代理, 该代理为应用层级, 可规定应用走代理链. 理想很美好, 现实很残酷. 家用和公司电脑均无法通过这种方式连接网络. 无法 curl www.google.com, 无论采用 wsl2 和 wsl1. 放弃了
shadowsocksR http 代理
使用 shadowsocksR 的”允许来自局域网的连接”
[SS/SSR] 分析&相关科普:“允许来自局域网的连接”到底怎么用
具体原理在于, linux 在系统层级是不支持 socks5 代理的, 但是支持 http 和 https 的代理. 而在 ssr 的客户端中是有使用 http 代理来翻墙的. 例如 PAC 模式即智能代理模式就是使用 http 来代理 1080 端口的, 另外还有一个 socks5 代理同样运行在 1080 端口, 所以 ssR 其实是在同一个端口上监听了两种代理协议.
所以其实只需要 wsl 的 http 代理设置到本机的 1080 端口就可以了.
实战中可以使用
export http_proxy="http://127.0.0.1:1080"
export https_proxy="http://127.0.0.1:1080"
用于设置当前终端代理. 重新带来终端后需重新设置, 这个模式只能跑 http, 对于其他需要走 socks5 的流量就差点意思了, 不过对于目前情况是够用的.
也可添加脚本简化开启和关闭 proxy用 Proxy 进一步提高 npm 安装速度
export no_proxy=localhost,127.0.0.1,mysite.com # 白名单
function proxyon() {
export http_proxy="http://127.0.0.1:1080" # 改成你自己的地址
export https_proxy="http://127.0.0.1:1080" # 改成你自己的地址
echo "HTTP Proxy on"
}
function proxyoff() {
unset http_proxy https_proxy # 取消 proxy
echo "HTTP Proxy off"
}
proxy # 可以加入这一行实现打开终端直接开启 proxy
最近发现在 wsl2 下使用的常规 svelte-realword(sapper - rollup) 无法 watch /destop/project/src/**文件变更, 只能改回 wsl1